package com.cn.mapper;

import com.cn.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 3.3 实用小技能
 */
public interface UserMapper2 {
    /**
     * 3.3.1 获取自增的主键值
     * 方式一：在映射文件中的<insert>标签中增加两个属性来实现该功能。利用keyProperty属性指定类的某个属性(通常与主键对应的java属性)接收主键返回值，并且需要将useGeneratedKeys属性设置为true
     * Mybatis将会在插入数据后自动获取数据库生成的主键值，并将其赋值给实体类中的id属性
     * @param user
     * @return
     */
    int insertUserGetID1(User user);

    /**
     * 3.3.1 获取自增的主键值
     * 方式二 <selectKey>
     * order = "BEFORE" 表示先执行<selectKey>标签中的语句用于设置主键，再执行插入语句。
     * order = "AFTER" 表示先执行插入语句，再执行<selectKey>标签中的语句用于设置主键
     */
    int insertUserGetID2(User user);

    /**
     * 3.3.2 传递表名
     */
    int getCount(String tableName);

    /**
     * 3.3.3 批量删除
     */
    int deleteUsers(String ids);
}
